#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>

int g_val = 100;
int main(){
  if(fork() == 0){
    int cnt = 5;
    while(cnt){
      printf("I am child, times: %d, g_val = %d, &g_val = %p\n",cnt,g_val,&g_val);
      cnt--;
      sleep(1);
      if(cnt == 3){
        printf("############child更改数据###################\n");
        g_val = 200;
        printf("############child更改数据done###############\n");
      }
    }
  }
  else{
    while(1){
      printf("I am parent,g_val = %d,&g_val = %p\n",g_val,&g_val);
      sleep(1);
    }
  }
  return 0;
}





//int g_unval;
//int g_val = 100;
////int main(int argc,char* argv[],char *env[]){
//int main(){
//
//  const char* s = "hello world";
//  printf("code addr:%p\n",main);
//  printf("string rdonly addr:%p\n",s);
//  printf("uninit addr:%p\n",&g_unval);
//  printf("init addr:%p\n",&g_val);
//  char* heap = (char*)malloc(10);
//  printf("heap addr:%p\n",heap);
//  printf("stack addr:%p\n",&s);
//  printf("stack addr:%p\n",&heap);
//  int a = 10;
//  int b = 30;
//  printf("stack addr:%p\n",&a);
//  printf("stack addr:%p\n",&b);
//
//  //printf("PATH: %s\n",getenv("PATH"));
//  //printf("HOME: %s\n",getenv("HOME"));
//  //printf("SHELL: %s\n",getenv("SHELL"));
//
// // extern char** environ;
// // int i=0;
// // for( i = 0; environ[i]; i++ ){
// //   printf("%d  -> %s\n",i,environ[i]);
// // }
//
////  int i = 0;
////  for(i = 0; env[i];i++){
////    printf("%d -> %s\n",i,env[i]);
////  }
//
////  if( argc != 2 ){
////    printf("Usage:%s -[a|h]\n",argv[0]);
////    return 1;
////  }
////  else if(strcmp(argv[1],"-h") == 0 ){
////    printf("hello Linux!\n");
////  }
////  else if(strcmp(argv[1],"-a") == 0){
////    printf("hello all!\n");
////  }
////  else{
////    printf("hello world!\n");
////  }
//
// // if(argc != 5){
// //   return 1;
// // }
//
//  // int i = 0;
// // for( ;argv[i]; i++ ){
// //   printf("%s\n",argv[i]);
// // }
//  //for(i=0; i<argc; i++){
//  //  printf("argv[%d] -> %s\n",i,argv[i]);
//  //}
// // int cnt = 5;
// // while(cnt){ 
// //   // printf("I am a process,pid = %d, ppid = %d\n",getpid(),getppid());
// //   sleep(1);
// //   printf("I am a cnt ----> process\n");
// //   cnt--;
// // }
//  return 0;
//}
